package cn.yuanqiao.archive.wenjianzhengli.utils.convert;

import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.UUID;

/*
 * 文件格式转换器
 * */
public interface FileFormatConvert {
    /*
     * 文件路径转换方式
     * */
    default void convert(UUID uuid, String input, String output) throws Exception {
        convert(uuid, Paths.get(input), Paths.get(output));
    }

    /*
     * 文件路径转换方式
     * */
    default void convert(UUID uuid, File input, File output) throws Exception {
        convert(uuid, input.toPath(), output.toPath());
    }

    /*
     * 文件路径转换方式 自动获取格式
     * */
    default void convert(UUID uuid, Path input, Path output) throws Exception {
        convert(uuid, input, null, output, null);
    }

    /*
     * 文件路径转换方式
     * */
    void convert(UUID uuid, Path input, String inputFormat, Path output, String outputFormat) throws Exception;

    /*
     * 文件流转换方式
     * */
    void convert(UUID uuid, InputStream input, String inputFormat, OutputStream output, String outputFormat) throws Exception;

    /*
     * 判断图片
     * */
    boolean isImage(File file) throws Exception;

    /*
     * 判断视频
     * */
    boolean isVideo(File file) throws Exception;

    /*
     * 判断音频
     * */
    boolean isAudio(File file) throws Exception;
}
